Add retry configuration for payment requests with Dunning and Downtime classes #481
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces new features for handling payment retries in the
CheckoutSdklibrary and updates thePaymentRequestclass to support these features. The changes include the addition of new classes for retry configurations and a modification to theRetryproperty inPaymentRequest.New Features for Payment Retry Configuration:
src/CheckoutSdk/Payments/Dunning.cs: Added theDunningclass to configure retries for payments declined with supported decline codes. It includes properties for enabling retries, setting the maximum number of attempts (MaxAttempts), and specifying the duration after which retries should end (EndAfterDays).src/CheckoutSdk/Payments/Downtime.cs: Added theDowntimeclass to configure retries for payments declined due to issuer or acquirer downtime. It includes a property to enable or disable this feature (Enabled).Updates to Existing Classes:
src/CheckoutSdk/Payments/RetryRequest.cs: Added theRetryRequestclass to encapsulate retry configurations, includingDunningandDowntime.src/CheckoutSdk/Payments/Request/PaymentRequest.cs: Updated theRetryproperty in thePaymentRequestclass to use the newRetryRequestclass instead of the previousPaymentRetryRequest.